package br.edu.ifrn.servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.edu.ifrn.beans.Aluno;
import br.edu.ifrn.persistencia.AlunoDAO;

@SuppressWarnings("serial")
public class EditarAluno extends HttpServlet {
	HttpSession sessao;
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		sessao = req.getSession();
		editarAluno(req, resp);
	}

	private void editarAluno(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		AlunoDAO dao = new AlunoDAO();
		
		Aluno aluno = new Aluno();
		aluno.setMatricula(req.getParameter("matricula"));
		aluno.setNome(req.getParameter("nome"));
		aluno.setTelefone(req.getParameter("telefone"));
		aluno.setCpf(req.getParameter("cpf"));
		aluno.setRg(req.getParameter("rg"));
		aluno.setLogradouro(req.getParameter("logradouro"));
		aluno.setNumero(req.getParameter("numero"));
		aluno.setBairro(req.getParameter("bairro"));
		aluno.setCidade(req.getParameter("cidade"));
		aluno.setUF(req.getParameter("uf"));
		aluno.setComplemento(req.getParameter("complemento"));
		aluno.setEmail(req.getParameter("email"));
		aluno.setHabilidades(req.getParameter("habilidades"));
		aluno.setNomePai(req.getParameter("nomePai"));
		aluno.setProfissaoPai(req.getParameter("profissaoPai"));
		aluno.setNomeMae(req.getParameter("nomeMae"));
		aluno.setProfissaoMae(req.getParameter("profissaoMae"));
		dao.editarAluno(aluno);
		sessao.setAttribute("aluno", aluno);

		String mensagem = "Dados alterados com sucesso";
		sessao.setAttribute("mensagem", mensagem);
		RequestDispatcher jsp = req.getRequestDispatcher("alunos.jsp");
		jsp.forward(req, resp);

	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		sessao = req.getSession();
		sessao.removeAttribute("erro1");
		editarsenha(req, resp);
	}
	
	private void editarsenha(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
		AlunoDAO dao = new AlunoDAO();
		Aluno alunoApp = (Aluno) sessao.getAttribute("aluno");
		Aluno alunoBanco = dao.recuperarPorMatricula(alunoApp.getMatricula());
		
		if (alunoBanco.getSenha().equals(req.getParameter("antiga"))){
			if (req.getParameter("nova1").equals(req.getParameter("nova2"))) {
				alunoBanco.setSenha(req.getParameter("nova1"));
				sessao.setAttribute("aluno", alunoBanco);
				dao.editarSenha(alunoBanco);
				String mensagem = "Senha alterada com sucesso";
				sessao.setAttribute("mensagem", mensagem);
				RequestDispatcher jsp = req.getRequestDispatcher("alunos.jsp");
				jsp.forward(req, resp);
			}else{
				String erro1 = "Novas senhas digitadas diferentes";
				sessao.setAttribute("erro1", erro1);
				RequestDispatcher jsp = req.getRequestDispatcher("editarsenhaaluno.jsp");
				jsp.forward(req, resp);
			}
				
		}else{
			String erro1 = "Senha incorreta";
			sessao.setAttribute("erro1", erro1);
			RequestDispatcher jsp = req.getRequestDispatcher("editarsenhaaluno.jsp");
			jsp.forward(req, resp);
		}
	}

}
